Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Dec 4, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/5977

🧭 풀이 시간

30분

👀 체감 난이도

✏️ 문제 설명

길이 N인 수열 A에서 연속한 K+1개 이상의 원소를 고르지 않고 만들 수 있는 부분 수열 합의 최댓값을 구해보자.

🔍 풀이 방법

dp[i] = i번째 원소까지 고른 경우의 최댓값이라 정의하고,
s[i] = a[1] + ... + a[i]라고 정의하면,
dp[i] = max(dp[i-j-1] + s[i] - s[i-j]) (j <= K) 이다.

그대로 구현하면 O(NK)로 시간 초과가 날 거라서 monotone deque을 이용해 max가 되는 지점의 인덱스를 뽑아주었다.
deque에 넣을 때는 dp[i] + s[N] - s[i+1]을 넣어 deque 내에서의 일관성이 깨지지 않도록 했다.

⏳ 회고

ez

@oncsr oncsr self-assigned this Dec 4, 2025
@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Dec 4, 2025
@ShinHeeEul ShinHeeEul merged commit 0937683 into main Dec 4, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants